#pragma once

#include <string>

namespace FileScanner {

/**
 * 解析文件大小字符串，支持 b, k, kb, m, mb, g, gb 等单位
 * @param sizeStr 大小字符串，如 "10k", "5mb", "1g"
 * @return 解析后的字节数，解析失败返回 -1
 */
long long parseFileSize(const std::string& sizeStr);

/**
 * 格式化文件大小为人类可读格式
 * @param bytes 字节数
 * @return 格式化后的字符串，如 "10.5 MB"
 */
std::string formatFileSize(long long bytes);

/**
 * 安全地连接路径，避免重复的斜线
 * @param basePath 基础路径
 * @param relativePath 相对路径
 * @return 连接后的路径，不包含重复斜线
 */
std::string joinPath(const std::string& basePath, const std::string& relativePath);

/**
 * 打印带时间戳的日志消息
 * @param message 日志消息
 */
void logMessage(const std::string& message);

/**
 * 打印错误消息
 * @param message 错误消息
 */
void logError(const std::string& message);

/**
 * 显示程序使用帮助
 */
void showHelp();

} // namespace FileScanner
